Scrawl
Rust library that opens a user's text editor and returns the results as a string. Can be used to open and edit exisiting files, or just as a scratch space for input. Useful for having a user edit text inline with a CLI program a la git commit -m
Built for my new (under development) daily journaling program in Rust: Echo
Quick Start
use scrawl;
Editor Struct
The Editor struct allows you to set certain options before opening the editor. It also allows you resuse these settings instead of having to build them each time you want to use an editor. Run edit()
on the struct to open the buffer.
use ;
If you want to open a one off editor without using settings, see the Functions section below.
Settings
Editor
You can set a preferred text editor for the user. Otherwise, $VISUAL, $EDITOR or "textpad.exe"/"vi" is used as a fallback if none is set.
let output = new.editor.open?;
File
You can set a file from which the text buffer will be seeded.
let output = new.file.open?;
Contents
You can use a string to seed the text buffer.
let output = new.contents.open?;
Extension
Set the extension of the temporary file created as a buffer. Useful for hinting to text editors which syntax highlighting to use.
let output = new.extension.open?;
Edit Directly
Opens a file for directory editing in the text editor. Does not return a String with the contents of the file.
.file.edit.open?;
new
Functions
These functions are provided for convenience. Useful for prototyping, or if you don't want to build and maintain a struct just to open an editor.
New
Open an empty text buffer in the user's preferred editor. Returns a Result with the contents of the buffer.
use scrawl;
With
Open an text buffer with the contents of the String slice in the user's preferred editor. Returns a Result with the contents of the buffer.
use scrawl;
Open
Open opens a text buffer in an editor with the contents of the file specified. This does not edit the contents of the file. Returns a Result with the contents of the buffer.
use scrawl;
Edit
Edit opens a text buffer in an editor with the contents of the file specified. This does edit the contents of the file.
use scrawl;